基本的なファイル操作のコマンド

※タイトルの下に黒白反転用のリンクがあります。

※目次は見出しレベル2で確認できます。

/目次/基本的なファイル操作のコマンド/homeディレクトリ

※見出しレベル3で各項目に飛べます。

先に、簡単にLinuxやUNIX系のファイル構造と主に使用する場所を紹介する。

/
/boot/bin/lib/dev
/tmp/mnt/media/sbin
/opt/svr/proc/root
/usr/etc/var/home

上記に挙げた/から続くディレクトリはLinuxやUNIX系OSの基本ディレクトリ構造である。/はディレクトリの区切りを意味する。/はwindowsのファイルエクスプローラーでalt+dを押した時に分かる\(半角の\)/に相当する。LinuxやUNIX系OSではフォルダのことをディレクトリと呼ぶ。

例えば、
/home/tak/test.txt
はWindowsふうに表すと
\home\tak\test.txt
となる。

一番上の/はディレクトリの起点(root)を意味する。Windowsの管理者はUNIXじょうではrootユーザーともいう。CLIに慣れる段階では/home以外は気にしなくて良い。簡単に紹介しておくと、アプリの設定ファイルやシステムファイルなどが含まれている。上記に並べたディレクトリは、WindowsのファイルエクスプローラーでいうとCドライブ直下のフォルダに相当する。Windowsフォルダのユーザー(User)がUNIX系OSの/homeに相当する。

/目次/基本的なファイル操作のコマンド/コマンド紹介

基本的なファイル操作に必要なコマンドを5つ紹介する。Windowsのコマンドプロンプトでubuntuを実行(エンターキー)するとインストールした仮想OSにログインできる。Windowsと違い作業を行うのはデスクトップではなく、任意のディレクトリ内で行う。デフォルトでログインした時は/home/ユーザー名に設定されており、画面では以下のような入力待ちになっている。

takumi@pcの名前:~$

./lsコマンド

上の入力待ち状態でlsを入力して実行すると/home/takumi/に保存されているファイルやディレクトリが一覧で表示される。

表示される方法はファイルやディレクトリ数によって変わるが、基本的に3行3列や4行4列のようにディレクトリやファイルが配列される。PC-TALKERで読み上げると、一行目に配列されたディレクトリやファイル名を全て連続で読み上げるので少し慣れが必要かもしれない。lsは恐らくlistのlとsではないかと思う。

コマンドにはオプションがあり、lsの後に1マス空けて-lオプションを付けて実行すれば権限、所有者、ファイルサイズ、作成日時が分かる。例えば、実行結果は以下のようになる。

drwx--x--x 2 center takumi 4096 Jan 6 14:55 temp
-rw-r--r-- 1 takumi takumi 1 Jan 17 23:09 test.txt

lsとは違いファイル一つに対し一行ずつ縦に表示される。

一番初めの文字はファイルタイプを示している。MyEditで上の例をコピペすると各行が9列で表示されている事が確認できる。上の例では、tempがディレクトリである「d」、test.txtがファイルである「-」が表示される。次に左から5列目はファイルのサイズを表している。単位はB(バイト)。tempは4096Bのディレクトリである事を確認できる。それ以降は月、日、最終更新日、ファイル(ディレクトリ)名を示している。一列目の一文字以外と2列目から4列目は/自動化とシェルスクリプトで解説する。

-lオプションの他にも使うと便利なオプションが-dオプション。

dはdirectory(ディレクトリ)の頭文字からきている。ls -dは指定したディレクトリをそのまま表示させる事ができる。

使い方は、
ls -d ./test
又は
ls -d /home/takumi/temp/test
結果は、
./test
又は
/home/takumi/temp/test

-d以外に-fというファイルのみ表示させるオプションもある。(fはfile(ファイル)の頭文字。)このオプションは特にパスを指定しなくても現在入っているディレクトリ直下のファイルを表示させる事ができる。また、オプションは-lfのように複数指定する事もできる。

./cpコマンド

cpはファイルを任意のディレクトリ内にコピーさせることができる。

例えば、現在のディレクトリ/home/takumi/にあるtest.txtを/home/にコピーする場合、以下のようにコマンドを使う。
cp ./test.txt ../
又は
cp ./test.txt /home/

ここで.は現在いるディレクトリ、..は一つ上のディレクトリを表す。/はディレクトリの区切りであると同時に「の中」という意味もある。つまり、最初の例では、「このディレクトリ中のtest.txt」を「一つ上のディレクトリ中」にコピーせよという意味になる。この.や..から始まるパスを相対パスという。逆に/home/というように/で始まるパスを絶対パスという。PC-TALKER利用者は例をMyEditにコピペすると「コマンドcp」スペース「対象ファイルのパス」スペース「コピー先ディレクトリのパス」となっている事を確認してほしい。

このコマンドでは、Windowsのファイルエクスプローラーでctrl+cとctrl+vをたった一行のコマンドで処理できる。当然コピー先ディレクトリが全く別の階層にある場合指定するディレクトリが長くなる。慣れれば覚えやすいディレクトリ名を使用するなど工夫したりディレクトリパスを覚える事ができる。パスを覚えられない場合、lsコマンドで対象ディレクトリをls -dで確認し、表示されたパスをctrl+sで音声コピーをしておくと実際に処理したいコマンドを入力しやすくなる。(現在、音声コピーをしてwsl2にペーストできるのはWindows11のみ)

./rmコマンド

rmは不要になったファイルを削除することができる。-rオプションを付ける事でディレクトリごと削除する事もできる。rは繰り返しを意味するrecursiveの頭文字。使い方は簡単で、rmの後に削除したいファイルを相対パス又は絶対パスで指定する。


rm ./test.txt
rm -r /home/takumi/temp

./mkdirコマンド

mkdirは指定先のディレクトリにディレクトリを作る事ができる。Windowsでは作りたいフォルダに入ってからctrl+shift+nで新規作成するが、このコマンドは必ず作りたいディレクトリ先に移動する必要は無い。

使い方は
mkdir ./temp/excel
mkdir /home/takumi/temp/excel

./cdコマンド

cdはディレクトリ間を移動することができる。Windowsのファイルエクスプローラーでは矢印キーとエンターキーを押して開きたいフォルダへ移動する事と同じ。

使用例、
cd ./temp/
cd /home/takumi/temp/test/

ただし、CLIでは、ファイル、アプリを実行する際必ずそのディレクトリに移動する必要は無い。そのためWindowsのファイルエクスプローラーのような移動の手間を省く事ができる。テキストファイルを指定のテキストエディタで開く場合「アプリのパス」スペース「開きたいテキストファイルのパス」を実行する。

例えばホームディレクトリ中のtempディレクトリにあるテキストファイルを開きたい場合、
notepad.exe ./temp/test.txt
を実行することでメモ帳でtest.txtを開く事ができる。

WSL2を使ったアプリやファイルの実行、テキストファイルの作成と編集方法については/自動化とシェルスクリプトで紹介する。